home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / sstevd.z / sstevd
Text File  |  1996-03-14  |  4KB  |  133 lines

  1.  
  2.  
  3.  
  4. SSSSSSSSTTTTEEEEVVVVDDDD((((3333FFFF))))                                                          SSSSSSSSTTTTEEEEVVVVDDDD((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SSTEVD - compute all eigenvalues and, optionally, eigenvectors of a real
  10.      symmetric tridiagonal matrix
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE SSTEVD( JOBZ, N, D, E, Z, LDZ, WORK, LWORK, IWORK, LIWORK,
  14.                         INFO )
  15.  
  16.          CHARACTER      JOBZ
  17.  
  18.          INTEGER        INFO, LDZ, LIWORK, LWORK, N
  19.  
  20.          INTEGER        IWORK( * )
  21.  
  22.          REAL           D( * ), E( * ), WORK( * ), Z( LDZ, * )
  23.  
  24. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  25.      SSTEVD computes all eigenvalues and, optionally, eigenvectors of a real
  26.      symmetric tridiagonal matrix. If eigenvectors are desired, it uses a
  27.      divide and conquer algorithm.
  28.  
  29.      The divide and conquer algorithm makes very mild assumptions about
  30.      floating point arithmetic. It will work on machines with a guard digit in
  31.      add/subtract, or on those binary machines without guard digits which
  32.      subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or Cray-2. It could
  33.      conceivably fail on hexadecimal or decimal machines without guard digits,
  34.      but we know of none.
  35.  
  36.  
  37. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  38.      JOBZ    (input) CHARACTER*1
  39.              = 'N':  Compute eigenvalues only;
  40.              = 'V':  Compute eigenvalues and eigenvectors.
  41.  
  42.      N       (input) INTEGER
  43.              The order of the matrix.  N >= 0.
  44.  
  45.      D       (input/output) REAL array, dimension (N)
  46.              On entry, the n diagonal elements of the tridiagonal matrix A.
  47.              On exit, if INFO = 0, the eigenvalues in ascending order.
  48.  
  49.      E       (input/output) REAL array, dimension (N)
  50.              On entry, the (n-1) subdiagonal elements of the tridiagonal
  51.              matrix A, stored in elements 1 to N-1 of E; E(N) need not be set,
  52.              but is used by the routine.  On exit, the contents of E are
  53.              destroyed.
  54.  
  55.      Z       (output) REAL array, dimension (LDZ, N)
  56.              If JOBZ = 'V', then if INFO = 0, Z contains the orthonormal
  57.              eigenvectors of the matrix A, with the i-th column of Z holding
  58.              the eigenvector associated with D(i).  If JOBZ = 'N', then Z is
  59.              not referenced.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSSSSSTTTTEEEEVVVVDDDD((((3333FFFF))))                                                          SSSSSSSSTTTTEEEEVVVVDDDD((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      LDZ     (input) INTEGER
  75.              The leading dimension of the array Z.  LDZ >= 1, and if JOBZ =
  76.              'V', LDZ >= max(1,N).
  77.  
  78.      WORK    (workspace/output) REAL array,
  79.              dimension (LWORK) On exit, if LWORK > 0, WORK(1) returns the
  80.              optimal LWORK.
  81.  
  82.      LWORK   (input) INTEGER
  83.              The dimension of the array WORK.  If JOBZ  = 'N' or N <= 1 then
  84.              LWORK must be at least 1.  If JOBZ  = 'V' and N > 1 then LWORK
  85.              must be at least ( 1 + 3*N + 2*N*lg N + 2*N**2 ), where lg( N ) =
  86.              smallest integer k such that 2**k >= N.
  87.  
  88.      IWORK   (workspace/output) INTEGER array, dimension (LIWORK)
  89.              On exit, if LIWORK > 0, IWORK(1) returns the optimal LIWORK.
  90.  
  91.      LIWORK  (input) INTEGER
  92.              The dimension of the array IWORK.  If JOBZ  = 'N' or N <= 1 then
  93.              LIWORK must be at least 1.  If JOBZ  = 'V' and N > 1 then LIWORK
  94.              must be at least 2+5*N.
  95.  
  96.      INFO    (output) INTEGER
  97.              = 0:  successful exit
  98.              < 0:  if INFO = -i, the i-th argument had an illegal value
  99.              > 0:  if INFO = i, the algorithm failed to converge; i off-
  100.              diagonal elements of E did not converge to zero.
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.